#ifndef _DDS_STRUCT_H
#define _DDS_STRUCT_H
#include "DDS_types.hxx"

struct Duration_t {
uint32_t sec;
uint32_t nanosec;
};

struct Time_t {
uint32_t sec;
uint32_t nanosec;
};

struct InconsistentTopicStatus {
long total_count;
long total_count_change;
};

struct SampleLostStatus {
long total_count;
long total_count_change;
};

struct SampleRejectedStatus {
long total_count;
long total_count_change;
SampleRejectedStatusKind last_reason;
InstanceHandle_t last_instance_handle;
};
struct LivelinessLostStatus {
long total_count;
long total_count_change;
};
struct LivelinessChangedStatus {
long alive_count;
long not_alive_count;
long alive_count_change;
long not_alive_count_change;
InstanceHandle_t last_publication_handle;
};

struct OfferedDeadlineMissedStatus {
long total_count;
long total_count_change;
InstanceHandle_t last_instance_handle;
};

struct RequestedDeadlineMissedStatus {
long total_count;
long total_count_change;
InstanceHandle_t last_instance_handle;
};


struct QosPolicyCount {
QosPolicyId_t policy_id;
long count;
};

struct PublicationMatchedStatus {
long total_count;
long total_count_change;
long current_count;
long current_count_change;
InstanceHandle_t last_subscription_handle;
};

struct SubscriptionMatchedStatus {
long total_count;
long total_count_change;
long current_count;
long current_count_change;
InstanceHandle_t last_publication_handle;
};

struct LifespanQosPolicy {
Duration_t duration;
};

struct PresentationQosPolicy {
PresentationQosPolicyAccessScopeKind access_scope;
boolean coherent_access;
boolean ordered_access;
};
struct DeadlineQosPolicy {
Duration_t period;
};

struct LatencyBudgetQosPolicy {
Duration_t duration;
};
#endif _DDS_STRUCT_H